package 算法.图.有向图;

import 算法.图.util.DirectedEdge;

/**
 * 【最短路径问题：有向图：狄杰斯卡尔算法】
 * 		求出从所有点到所有点得最短路径
 * @Date   2017-09-04 18：18
 * @author Administrator
 * @version TODO:>>>>>>>尚未测试
 */
public class DijkstraAllPairsSP {
	
	public DijkstraSP[] all;
	
	public DijkstraAllPairsSP(EdgeWeightedDigraph G) {
		all = new DijkstraSP[G.V];
		for (int i=0; i<G.V; i++)	all[i] = new DijkstraSP(G, i);
	}
	
	/**
	 * 求出起点和终点的路径
	 * @param start
	 * @param end
	 */
	public Iterable<DirectedEdge> path(int start, int end) {
		return all[start].getPath(end);
	}
	/**
	 * 求出起点和终点的长度（权值和）
	 * @param start
	 * @param end
	 */
	public double dist(int start, int end) {
		return all[start].distTo[end];
	}
}
